package com.demo.statemachine.d10;

import lombok.extern.slf4j.Slf4j;
import org.springframework.messaging.support.MessageBuilder;
import org.springframework.statemachine.StateContext;
import org.springframework.statemachine.action.Action;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;

import java.util.Map;
@Slf4j
public class SwapActions {
    //****************************** entry action ***********************************************************
    public static Action<SwapStates, SwapEvents> IDLE_ENTRY_ACTION = stateContext -> {
//        stateContext.getExtendedState().getVariables().clear();
//        log.info("进入 IDLE,清空所有参数 ");
    };

    public static Action<SwapStates, SwapEvents> BUSY_ENTRY_ACTION = stateContext -> {
//        Map<Object, Object> variables = stateContext.getExtendedState().getVariables();
//        log.info("进入 BUSY ");
//        if (ObjectUtils.isEmpty(variables.get("id"))) {
//            log.info("进入 BUSY,不存在 ID ");
//            variables.put("id", "12");
//            return;
//        }
//        log.info("进入 BUSY,存在 ID ，退出BUSY ，再次进入 IDLE ");
//        stateContext.getSource().sendEvent(MessageBuilder.withPayload(SwapEvents.BUSY_IDLE).build());

    };
    public static Action<SwapStates, SwapEvents> HISTORY_ENTRY_ACTION = stateContext -> {
//        log.info("进入 HISTORY ");
    };
    public static Action<SwapStates, SwapEvents> SUSPEND_ENTRY_ACTION = stateContext -> {
//        log.info("进入 SUSPEND ");
    };
    public static Action<SwapStates, SwapEvents> FAULT_ENTRY_ACTION = stateContext -> {
//        log.info("进入 FAULT ");
    };


    public static Action<SwapStates, SwapEvents> DATA_FORK_ENTRY_ACTION = stateContext -> {
//        log.info("进入 DATA_FORK ");
    };
    public static Action<SwapStates, SwapEvents> DATA_TASK_ENTRY_ACTION = stateContext -> {
//        log.info("进入 DATA_TASK ");
    };
    public static Action<SwapStates, SwapEvents> DATA_JOIN_ENTRY_ACTION = stateContext -> {
//        //        log.info("进入 DATA_JOIN ");
    };
    public static Action<SwapStates, SwapEvents> DATA_CHOICE_ENTRY_ACTION = stateContext -> {
//        log.info("进入 DATA_CHOICE ");
    };

    public static Action<SwapStates, SwapEvents> ENV_FORK_ENTRY_ACTION = stateContext -> {
//        //        log.info("进入 DATA_JOIN ");
    };
    public static Action<SwapStates, SwapEvents> ENV_TASK_ENTRY_ACTION = stateContext -> {
//        //        log.info("进入 DATA_JOIN ");
    };
    public static Action<SwapStates, SwapEvents> ENV_JOIN_ENTRY_ACTION = stateContext -> {
//        //        log.info("进入 DATA_JOIN ");
    };
    public static Action<SwapStates, SwapEvents> ENV_CHOICE_ENTRY_ACTION = stateContext -> {
//        //        log.info("进入 DATA_JOIN ");
    };

    public static Action<SwapStates, SwapEvents> PRESET_FORK_ENTRY_ACTION = stateContext -> {
//        //        log.info("进入 DATA_JOIN ");
    };
    public static Action<SwapStates, SwapEvents> PRESET_TASK_ENTRY_ACTION = stateContext -> {
//        //        log.info("进入 DATA_JOIN ");
    };
    public static Action<SwapStates, SwapEvents> PRESET_JOIN_ENTRY_ACTION = stateContext -> {
//        //        log.info("进入 DATA_JOIN ");
    };
    public static Action<SwapStates, SwapEvents> PRESET_CHOICE_ENTRY_ACTION = stateContext -> {
//        //        log.info("进入 DATA_JOIN ");
    };

    public static Action<SwapStates, SwapEvents> SWAP_FORK_ENTRY_ACTION = stateContext -> {
//        //        log.info("进入 DATA_JOIN ");
    };
    public static Action<SwapStates, SwapEvents> SWAP_TASK_ENTRY_ACTION = stateContext -> {
//        //        log.info("进入 DATA_JOIN ");
    };
    public static Action<SwapStates, SwapEvents> SWAP_JOIN_ENTRY_ACTION = stateContext -> {
//        //        log.info("进入 DATA_JOIN ");
    };
    public static Action<SwapStates, SwapEvents> SWAP_CHOICE_ENTRY_ACTION = stateContext -> {
//        //        log.info("进入 DATA_JOIN ");
    };

    public static Action<SwapStates, SwapEvents> AGAIN_SWAP_CHOICE_ENTRY_ACTION = stateContext -> {
//        //        log.info("进入 DATA_JOIN ");
    };

    public static Action<SwapStates, SwapEvents> END_FORK_ENTRY_ACTION = stateContext -> {
//        //        log.info("进入 DATA_JOIN ");
    };
    public static Action<SwapStates, SwapEvents> END_TASK_ENTRY_ACTION = stateContext -> {
//        //        log.info("进入 DATA_JOIN ");
    };
    public static Action<SwapStates, SwapEvents> END_JOIN_ENTRY_ACTION = stateContext -> {
//        //        log.info("进入 DATA_JOIN ");
    };
    public static Action<SwapStates, SwapEvents> END_CHOICE_ENTRY_ACTION = stateContext -> {
//        //        log.info("进入 DATA_JOIN ");
    };

    public static Action<SwapStates, SwapEvents> RESET_FORK_ENTRY_ACTION = stateContext -> {
//        //        log.info("进入 DATA_JOIN ");
    };
    public static Action<SwapStates, SwapEvents> RESET_TASK_ENTRY_ACTION = stateContext -> {
//        //        log.info("进入 DATA_JOIN ");
    };
    public static Action<SwapStates, SwapEvents> RESET_JOIN_ENTRY_ACTION = stateContext -> {
//        //        log.info("进入 DATA_JOIN ");
    };
    public static Action<SwapStates, SwapEvents> RESET_CHOICE_ENTRY_ACTION = stateContext -> {
//        //        log.info("进入 DATA_JOIN ");
    };

    //数据校验任务
    public static Action<SwapStates, SwapEvents> DATA_VEHICLE_PLATE_CHECK_ENTRY_ACTION = stateContext -> {
//        log.info("进入 DATA_VEHICLE_PLATE_CHECK ");
    };
    public static Action<SwapStates, SwapEvents> DATA_CLOUD_AUTH_ENTRY_ACTION = stateContext -> {
//        log.info("进入 DATA_CLOUD_AUTH_ENTRY ");
    };
    public static Action<SwapStates, SwapEvents> DATA_VEHICLE_CONNECTION_ENTRY_ACTION = stateContext -> {
//        log.info("进入 DATA_VEHICLE_CONNECTION ");
    };


    public static Action<SwapStates, SwapEvents> DATA_V_IN_PLACE_ENTRY_ACTION = stateContext -> {
//        //        log.info("进入 DATA_JOIN ");
    };
    public static Action<SwapStates, SwapEvents> DATA_VEHICLE_IN_PLACE_ENTRY_ACTION = stateContext -> {
//        //        log.info("进入 DATA_JOIN ");
    };
    public static Action<SwapStates, SwapEvents> DATA_VEHICLE_FREEDOM_ENTRY_ACTION = stateContext -> {
//        //        log.info("进入 DATA_JOIN ");
    };


    public static Action<SwapStates, SwapEvents> DATA_SWAP_TYPE_CHOICE_ENTRY_ACTION = stateContext -> {
//        //        log.info("进入 DATA_JOIN ");
    };
    public static Action<SwapStates, SwapEvents> DATA_FEEL_SWAP_ENTRY_ACTION = stateContext -> {
//        //        log.info("进入 DATA_JOIN ");
    };
    public static Action<SwapStates, SwapEvents> DATA_NO_FEEL_SWAP_ENTRY_ACTION = stateContext -> {
//        //        log.info("进入 DATA_JOIN ");
    };
    public static Action<SwapStates, SwapEvents> DATA_SCAN_CODE_ENTRY_ACTION = stateContext -> {
//        //        log.info("进入 DATA_JOIN ");
    };


    //环境准备任务
    public static Action<SwapStates, SwapEvents> ENV_FETCH_STRATEGY_ENTRY_ACTION = stateContext -> {
        //        log.info("进入 DATA_JOIN ");
    };

    public static Action<SwapStates, SwapEvents> ENV_CAR_MACHINE_CONFIRM_ENTRY_ACTION = stateContext -> {
        //        log.info("进入 DATA_JOIN ");
    };

    public static Action<SwapStates, SwapEvents> ENV_PLC_CONFIRM_ENTRY_ACTION = stateContext -> {
        //        log.info("进入 DATA_JOIN ");
    };


    //预置任务
    public static Action<SwapStates, SwapEvents> PRESET_TASK1_ENTRY_ACTION = stateContext -> {
        //        log.info("进入 DATA_JOIN ");
    };


    //换电任务
    public static Action<SwapStates, SwapEvents> SWAP_START_ENTRY_ACTION = stateContext -> {
        //        log.info("进入 DATA_JOIN ");
    };
    public static Action<SwapStates, SwapEvents> SWAP_UNINSTALL_ENTRY_ACTION = stateContext -> {
        //        log.info("进入 DATA_JOIN ");
    };

    public static Action<SwapStates, SwapEvents> SWAP_INSTALL_ENTRY_ACTION = stateContext -> {
        //        log.info("进入 DATA_JOIN ");
    };
    public static Action<SwapStates, SwapEvents> SWAP_TRANSPORT_ENTRY_ACTION = stateContext -> {
        //        log.info("进入 DATA_JOIN ");
    };

    public static Action<SwapStates, SwapEvents> SWAP_VEHICLE_SELF_CHECK_ENTRY_ACTION = stateContext -> {
        //        log.info("进入 DATA_JOIN ");
    };
    public static Action<SwapStates, SwapEvents> SWAP_FINISH_ENTRY_ACTION = stateContext -> {
        //        log.info("进入 DATA_JOIN ");
    };


    //换电结束任务
    public static Action<SwapStates, SwapEvents> END_AFTER_ROAD_GATE_STARTUP_ENTRY_ACTION = stateContext -> {
        //        log.info("进入 DATA_JOIN ");
    };
    public static Action<SwapStates, SwapEvents> END_VEHICLE_OFF_PLACE_ENTRY_ACTION = stateContext -> {
        //        log.info("进入 DATA_JOIN ");
    };

    public static Action<SwapStates, SwapEvents> END_AFTER_ROAD_GATE_SHUTDOWN_ENTRY_ACTION = stateContext -> {
        //        log.info("进入 DATA_JOIN ");
    };
    public static Action<SwapStates, SwapEvents> END_SWAP_END_ENTRY_ACTION = stateContext -> {
        //        log.info("进入 DATA_JOIN ");
    };


    //复位任务
    public static Action<SwapStates, SwapEvents> RESET_CAR_MACHINE_ENTRY_ACTION = stateContext -> {
        //        log.info("进入 DATA_JOIN ");
    };

    public static Action<SwapStates, SwapEvents> RESET_PLC_ENTRY_ACTION = stateContext -> {
        //        log.info("进入 DATA_JOIN ");
    };

    public static Action<SwapStates, SwapEvents> RESET_RBC_ENTRY_ACTION = stateContext -> {
        //        log.info("进入 DATA_JOIN ");
    };
//****************************** exit action ***********************************************************

    public static Action<SwapStates, SwapEvents> IDLE_EXIT_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> BUSY_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> HISTORY_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> SUSPEND_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> FAULT_EXIT_ACTION = stateContext -> {

    };


    public static Action<SwapStates, SwapEvents> DATA_FORK_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> DATA_TASK_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> DATA_JOIN_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> DATA_CHOICE_EXIT_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> ENV_FORK_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> ENV_TASK_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> ENV_JOIN_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> ENV_CHOICE_EXIT_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> PRESET_FORK_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> PRESET_TASK_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> PRESET_JOIN_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> PRESET_CHOICE_EXIT_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> SWAP_FORK_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> SWAP_TASK_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> SWAP_JOIN_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> SWAP_CHOICE_EXIT_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> AGAIN_SWAP_CHOICE_EXIT_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> END_FORK_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> END_TASK_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> END_JOIN_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> END_CHOICE_EXIT_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> RESET_FORK_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> RESET_TASK_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> RESET_JOIN_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> RESET_CHOICE_EXIT_ACTION = stateContext -> {

    };

    //数据校验任务
    public static Action<SwapStates, SwapEvents> DATA_VEHICLE_PLATE_CHECK_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> DATA_CLOUD_AUTH_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> DATA_VEHICLE_CONNECTION_EXIT_ACTION = stateContext -> {

    };


    public static Action<SwapStates, SwapEvents> DATA_V_IN_PLACE_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> DATA_VEHICLE_IN_PLACE_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> DATA_VEHICLE_FREEDOM_EXIT_ACTION = stateContext -> {

    };


    public static Action<SwapStates, SwapEvents> DATA_SWAP_TYPE_CHOICE_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> DATA_FEEL_SWAP_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> DATA_NO_FEEL_SWAP_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> DATA_SCAN_CODE_EXIT_ACTION = stateContext -> {

    };


    //环境准备任务
    public static Action<SwapStates, SwapEvents> ENV_FETCH_STRATEGY_EXIT_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> ENV_CAR_MACHINE_CONFIRM_EXIT_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> ENV_PLC_CONFIRM_EXIT_ACTION = stateContext -> {

    };


    //预置任务
    public static Action<SwapStates, SwapEvents> PRESET_TASK1_EXIT_ACTION = stateContext -> {

    };


    //换电任务
    public static Action<SwapStates, SwapEvents> SWAP_START_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> SWAP_UNINSTALL_EXIT_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> SWAP_INSTALL_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> SWAP_TRANSPORT_EXIT_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> SWAP_VEHICLE_SELF_CHECK_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> SWAP_FINISH_EXIT_ACTION = stateContext -> {

    };


    //换电结束任务
    public static Action<SwapStates, SwapEvents> END_AFTER_ROAD_GATE_STARTUP_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> END_VEHICLE_OFF_PLACE_EXIT_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> END_AFTER_ROAD_GATE_SHUTDOWN_EXIT_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> END_SWAP_END_EXIT_ACTION = stateContext -> {

    };


    //复位任务
    public static Action<SwapStates, SwapEvents> RESET_CAR_MACHINE_EXIT_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> RESET_PLC_EXIT_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> RESET_RBC_EXIT_ACTION = stateContext -> {

    };

    //****************************** transition action ***********************************************************
    public static Action<SwapStates, SwapEvents> IDLE_TRANSITION_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> BUSY_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> HISTORY_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> SUSPEND_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> FAULT_TRANSITION_ACTION = stateContext -> {

    };


    public static Action<SwapStates, SwapEvents> DATA_FORK_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> DATA_TASK_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> DATA_JOIN_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> DATA_CHOICE_TRANSITION_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> ENV_FORK_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> ENV_TASK_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> ENV_JOIN_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> ENV_CHOICE_TRANSITION_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> PRESET_FORK_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> PRESET_TASK_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> PRESET_JOIN_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> PRESET_CHOICE_TRANSITION_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> SWAP_FORK_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> SWAP_TASK_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> SWAP_JOIN_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> SWAP_CHOICE_TRANSITION_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> AGAIN_SWAP_CHOICE_TRANSITION_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> END_FORK_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> END_TASK_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> END_JOIN_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> END_CHOICE_TRANSITION_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> RESET_FORK_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> RESET_TASK_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> RESET_JOIN_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> RESET_CHOICE_TRANSITION_ACTION = stateContext -> {

    };

    //数据校验任务
    public static Action<SwapStates, SwapEvents> DATA_VEHICLE_PLATE_CHECK_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> DATA_CLOUD_AUTH_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> DATA_VEHICLE_CONNECTION_TRANSITION_ACTION = stateContext -> {

    };


    public static Action<SwapStates, SwapEvents> DATA_V_IN_PLACE_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> DATA_VEHICLE_IN_PLACE_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> DATA_VEHICLE_FREEDOM_TRANSITION_ACTION = stateContext -> {

    };


    public static Action<SwapStates, SwapEvents> DATA_SWAP_TYPE_CHOICE_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> DATA_FEEL_SWAP_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> DATA_NO_FEEL_SWAP_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> DATA_SCAN_CODE_TRANSITION_ACTION = stateContext -> {

    };


    //环境准备任务
    public static Action<SwapStates, SwapEvents> ENV_FETCH_STRATEGY_TRANSITION_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> ENV_CAR_MACHINE_CONFIRM_TRANSITION_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> ENV_PLC_CONFIRM_TRANSITION_ACTION = stateContext -> {

    };


    //预置任务
    public static Action<SwapStates, SwapEvents> PRESET_TASK1_TRANSITION_ACTION = stateContext -> {

    };


    //换电任务
    public static Action<SwapStates, SwapEvents> SWAP_START_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> SWAP_UNINSTALL_TRANSITION_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> SWAP_INSTALL_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> SWAP_TRANSPORT_TRANSITION_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> SWAP_VEHICLE_SELF_CHECK_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> SWAP_FINISH_TRANSITION_ACTION = stateContext -> {

    };


    //换电结束任务
    public static Action<SwapStates, SwapEvents> END_AFTER_ROAD_GATE_STARTUP_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> END_VEHICLE_OFF_PLACE_TRANSITION_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> END_AFTER_ROAD_GATE_SHUTDOWN_TRANSITION_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> END_SWAP_END_TRANSITION_ACTION = stateContext -> {

    };


    //复位任务
    public static Action<SwapStates, SwapEvents> RESET_CAR_MACHINE_TRANSITION_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> RESET_PLC_TRANSITION_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> RESET_RBC_TRANSITION_ACTION = stateContext -> {

    };


    //****************************** error action ***********************************************************
    public static Action<SwapStates, SwapEvents> IDLE_ERROR_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> BUSY_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> HISTORY_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> SUSPEND_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> FAULT_ERROR_ACTION = stateContext -> {

    };


    public static Action<SwapStates, SwapEvents> DATA_FORK_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> DATA_TASK_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> DATA_JOIN_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> DATA_CHOICE_ERROR_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> ENV_FORK_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> ENV_TASK_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> ENV_JOIN_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> ENV_CHOICE_ERROR_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> PRESET_FORK_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> PRESET_TASK_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> PRESET_JOIN_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> PRESET_CHOICE_ERROR_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> SWAP_FORK_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> SWAP_TASK_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> SWAP_JOIN_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> SWAP_CHOICE_ERROR_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> AGAIN_SWAP_CHOICE_ERROR_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> END_FORK_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> END_TASK_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> END_JOIN_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> END_CHOICE_ERROR_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> RESET_FORK_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> RESET_TASK_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> RESET_JOIN_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> RESET_CHOICE_ERROR_ACTION = stateContext -> {

    };

    //数据校验任务
    public static Action<SwapStates, SwapEvents> DATA_VEHICLE_PLATE_CHECK_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> DATA_CLOUD_AUTH_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> DATA_VEHICLE_CONNECTION_ERROR_ACTION = stateContext -> {

    };


    public static Action<SwapStates, SwapEvents> DATA_V_IN_PLACE_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> DATA_VEHICLE_IN_PLACE_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> DATA_VEHICLE_FREEDOM_ERROR_ACTION = stateContext -> {

    };


    public static Action<SwapStates, SwapEvents> DATA_SWAP_TYPE_CHOICE_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> DATA_FEEL_SWAP_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> DATA_NO_FEEL_SWAP_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> DATA_SCAN_CODE_ERROR_ACTION = stateContext -> {

    };


    //环境准备任务
    public static Action<SwapStates, SwapEvents> ENV_FETCH_STRATEGY_ERROR_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> ENV_CAR_MACHINE_CONFIRM_ERROR_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> ENV_PLC_CONFIRM_ERROR_ACTION = stateContext -> {

    };


    //预置任务
    public static Action<SwapStates, SwapEvents> PRESET_TASK1_ERROR_ACTION = stateContext -> {

    };


    //换电任务
    public static Action<SwapStates, SwapEvents> SWAP_START_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> SWAP_UNINSTALL_ERROR_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> SWAP_INSTALL_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> SWAP_TRANSPORT_ERROR_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> SWAP_VEHICLE_SELF_CHECK_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> SWAP_FINISH_ERROR_ACTION = stateContext -> {

    };


    //换电结束任务
    public static Action<SwapStates, SwapEvents> END_AFTER_ROAD_GATE_STARTUP_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> END_VEHICLE_OFF_PLACE_ERROR_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> END_AFTER_ROAD_GATE_SHUTDOWN_ERROR_ACTION = stateContext -> {

    };
    public static Action<SwapStates, SwapEvents> END_SWAP_END_ERROR_ACTION = stateContext -> {

    };


    //复位任务
    public static Action<SwapStates, SwapEvents> RESET_CAR_MACHINE_ERROR_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> RESET_PLC_ERROR_ACTION = stateContext -> {

    };

    public static Action<SwapStates, SwapEvents> RESET_RBC_ERROR_ACTION = stateContext -> {

    };
}
